package com.xc.hotelmgr.datahandlermt.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ComUtil {

    /**
     * 系统时间转换为数据库时间
     * @return
     */
    public static java.sql.Date nowTime() {
        long time = System.currentTimeMillis();
        return new java.sql.Date(time);
    }

    /**
     * 日期转换  字符串日期转换为 date  yyyy-MM-dd
     * @param date
     * @return
     */
    public static Date dateStr2Date(String date) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return new java.sql.Date(simpleDateFormat.parse(date).getTime());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * int（20200202）型时间转换yyyy-MM-dd
     * @param date
     * @return
     */
    public static String intDate2String(int date) {
        try {
            Date format1 = new SimpleDateFormat("yyyyMMdd").parse(String.valueOf(date));
            return new SimpleDateFormat("yyyy-MM-dd").format(format1);
        }catch (Exception e) {
            return null;
        }
    }

    /**
     * Date 类型转换 int
     * @param date
     * @return
     */
    public static int date2Integer(Date date) {
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式
        String dateTime = df.format(date);
        return Integer.parseInt(dateTime);
    }

    /**
     * 字符串日期取后两位
     * @param date
     * @return
     */
    public static String dateStr2Integer(String date) {
        String day = date.substring(date.length()-2, date.length());
        String month = date.substring(date.length()-5, date.length()-3);
        return month + day;
    }

    /**
     * 时间HH:mm:ss 转换 从24小时向前提前时间量   20：00 转换为  6 （当天24点前提前6小时）
     * @param date
     * @return
     */
    public static int time2Hour(String date) {
        DateFormat df = new SimpleDateFormat("HH:mm:ss");
        try{
            Date d1 = df.parse("24:00:00");
            Date d2 = df.parse(date);
            long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别
            long days = diff / (1000 * 60 * 60 * 24);
            return (int) ((diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60));
        }catch (Exception e){
            return 0;
        }
    }

    public static String dateToStr(Date dateDate) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(dateDate);
    }
}


